package com.yy.wga.common.core.dto;

import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 用户
 *
 * @author guochao
 * @date 2019/12/12 9:32
 */
@Data
public class UserCacheDTO implements Serializable {
    private static final long serialVersionUID = 5238391948905515897L;

    /**
     * IdUtils.uuid()生成 用户token，同时也是加密私钥
     */
    private String token;
    /**
     * 会话密钥
     */
    private String sessionKey;
    /**
     * unionId
     */
    private String unionId;
    /**
     * openId
     */
    private String openId;
    /**
     * 用户头像图片的 URL
     */
    private String avatarUrl;
    /**
     * 用户性别 0未知 1男 2女
     */
    private Integer gender;
    /**
     * 用户所在国家
     */
    private String country;
    /**
     * 用户所在省份
     */
    private String province;
    /**
     * 用户所在城市
     */
    private String city;
    /**
     * 显示 country，province，city 所用的语言
     */
    private String language;
    /**
     * 用户id
     */
    private Long userId;
    /**
     * user_name 昵称
     */
    private String userName;
    /**
     * phone 手机号
     */
    private String phone;
    /**
     * 等级
     * @see com.yy.wga.common.core.enmus
     */
    private Integer grade;
    /**
     * 等级级别
     */
    private Integer level;

    /**
     * 邀请码
     */
    private String inviteCode;
    /**
     * 微信号
     */
    private String wxNum;

    /**
     * 是否注册并绑定机构 0 未注册或未绑定  1 已注册且绑定
     */
    private Integer registerBindStatus;

    /**
     * 注册时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
